home *** CD-ROM | disk | FTP | other *** search
- /* vi:set ts=8 sts=4 sw=4:
- *
- * VIM - Vi IMproved by Bram Moolenaar
- *
- * Do ":help uganda" in Vim to read copying and usage conditions.
- * Do ":help credits" in Vim to see a list of people who contributed.
- * See README.txt for an overview of the Vim source code.
- */
-
- /*
- * digraph.c: code for digraphs
- */
-
- #include "vim.h"
-
- #if defined(FEAT_DIGRAPHS) || defined(PROTO)
-
- #ifdef FEAT_MBYTE
- typedef int result_T;
- #else
- typedef char_u result_T;
- #endif
-
- typedef struct digraph
- {
- char_u char1;
- char_u char2;
- result_T result;
- } digr_T;
-
- static int getexactdigraph __ARGS((int, int, int));
- static void printdigraph __ARGS((digr_T *));
-
- /* digraphs added by the user */
- static garray_T user_digraphs = {0, 0, sizeof(digr_T), 10, NULL};
-
- /*
- * Note: Characters marked with XX are not included literally, because some
- * compilers cannot handle them (Amiga SAS/C is the most picky one).
- */
- #if defined(MSDOS) || defined(OS2)
- /*
- * MSDOS digraphs.
- */
- digr_T digraphdefault[] =
- {{'C', ',', 128}, /* ~@ XX */
- {'u', '"', 129}, /* */
- {'e', '\'', 130}, /* */
- {'a', '^', 131}, /* */
- {'a', '"', 132}, /* */
- {'a', '`', 133}, /*
*/
- {'a', '@', 134}, /* */
- {'c', ',', 135}, /* ~G XX */
- {'e', '^', 136}, /* ~H XX */
- {'e', '"', 137}, /* */
- {'e', '`', 138}, /* */
- {'i', '"', 139}, /* */
- {'i', '^', 140}, /* */
- {'i', '`', 141}, /* */
- {'A', '"', 142}, /* ~N XX */
- {'A', '@', 143}, /* */
- {'E', '\'', 144}, /* */
- {'a', 'e', 145}, /* */
- {'A', 'E', 146}, /* */
- {'o', '^', 147}, /* */
- {'o', '"', 148}, /* */
- {'o', '`', 149}, /* */
- {'u', '^', 150}, /* */
- {'u', '`', 151}, /* */
- {'y', '"', 152}, /* */
- {'O', '"', 153}, /* */
- {'U', '"', 154}, /* */
- {'c', '|', 155}, /* */
- {'$', '$', 156}, /* */
- {'Y', '-', 157}, /* ~] XX */
- {'P', 't', 158}, /* */
- {'f', 'f', 159}, /* */
- {'a', '\'', 160}, /* */
- {'i', '\'', 161}, /* ¡ */
- {'o', '\'', 162}, /* ¢ */
- {'u', '\'', 163}, /* x XX */
- {'n', '~', 164}, /* ¤ */
- {'N', '~', 165}, /* ¥ */
- {'a', 'a', 166}, /* ¦ */
- {'o', 'o', 167}, /* § */
- {'~', '?', 168}, /* ¨ */
- {'-', 'a', 169}, /* © */
- {'a', '-', 170}, /* ª */
- {'1', '2', 171}, /* « */
- {'1', '4', 172}, /* ¬ */
- {'~', '!', 173}, /* */
- {'<', '<', 174}, /* ® */
- {'>', '>', 175}, /* ¯ */
-
- {'s', 's', 225}, /* á */
- {'j', 'u', 230}, /* æ */
- {'o', '/', 237}, /* í */
- {'+', '-', 241}, /* ñ */
- {'>', '=', 242}, /* ò */
- {'<', '=', 243}, /* ó */
- {':', '-', 246}, /* ö */
- {'~', '~', 247}, /* ÷ */
- {'~', 'o', 248}, /* ø */
- {'2', '2', 253}, /* ý */
- {NUL, NUL, NUL}
- };
-
- #else /* !MSDOS && !OS2 */
- # ifdef __MINT__
-
- /*
- * ATARI digraphs
- */
- digr_T digraphdefault[] =
- {{'C', ',', 128}, /* ~@ XX */
- {'u', '"', 129}, /* */
- {'e', '\'', 130}, /* */
- {'a', '^', 131}, /* */
- {'a', '"', 132}, /* */
- {'a', '`', 133}, /*
*/
- {'a', '@', 134}, /* */
- {'c', ',', 135}, /* ~G XX */
- {'e', '^', 136}, /* ~H XX */
- {'e', '"', 137}, /* */
- {'e', '`', 138}, /* */
- {'i', '"', 139}, /* */
- {'i', '^', 140}, /* */
- {'i', '`', 141}, /* */
- {'A', '"', 142}, /* */
- {'A', '@', 143}, /* */
- {'E', '\'', 144}, /* */
- {'a', 'e', 145}, /* */
- {'A', 'E', 146}, /* */
- {'o', '^', 147}, /* */
- {'o', '"', 148}, /* */
- {'o', '`', 149}, /* */
- {'u', '^', 150}, /* */
- {'u', '`', 151}, /* */
- {'y', '"', 152}, /* */
- {'O', '"', 153}, /* */
- {'U', '"', 154}, /* */
- {'c', '|', 155}, /* */
- {'$', '$', 156}, /* */
- {'Y', '-', 157}, /* ~] XX */
- {'s', 's', 158}, /* */
- {'f', 'f', 159}, /* */
- {'a', '\'', 160}, /* */
- {'i', '\'', 161}, /* ¡ */
- {'o', '\'', 162}, /* ¢ */
- {'u', '\'', 163}, /* £ */
- {'n', '~', 164}, /* ¤ */
- {'N', '~', 165}, /* ¥ */
- {'a', 'a', 166}, /* ¦ */
- {'o', 'o', 167}, /* § */
- {'~', '?', 168}, /* ¨ */
- {'-', 'a', 169}, /* © */
- {'a', '-', 170}, /* ª */
- {'1', '2', 171}, /* « */
- {'1', '4', 172}, /* ¬ */
- {'~', '!', 173}, /* */
- {'<', '<', 174}, /* ® */
- {'>', '>', 175}, /* ¯ */
- {'j', 'u', 230}, /* æ */
- {'o', '/', 237}, /* í */
- {'+', '-', 241}, /* ñ */
- {'>', '=', 242}, /* ò */
- {'<', '=', 243}, /* ó */
- {':', '-', 246}, /* ö */
- {'~', '~', 247}, /* ÷ */
- {'~', 'o', 248}, /* ø */
- {'2', '2', 253}, /* ý */
- {NUL, NUL, NUL}
- };
-
- # else /* !__MINT__ */
- # ifdef HPUX_DIGRAPHS
-
- /*
- * different HPUX digraphs
- */
- digr_T digraphdefault[] =
- {{'A', '`', 161}, /* ¡ */
- {'A', '^', 162}, /* ¢ */
- {'E', '`', 163}, /* £ */
- {'E', '^', 164}, /* ¤ */
- {'E', '"', 165}, /* ¥ */
- {'I', '^', 166}, /* ¦ */
- {'I', '"', 167}, /* § */
- {'\'', '\'', 168}, /* ¨ */
- {'`', '`', 169}, /* © */
- {'^', '^', 170}, /* ª */
- {'"', '"', 171}, /* « */
- {'~', '~', 172}, /* ¬ */
- {'U', '`', 173}, /* */
- {'U', '^', 174}, /* ® */
- {'L', '=', 175}, /* ¯ */
- {'~', '_', 176}, /* ° */
- {'Y', '\'', 177}, /* ± */
- {'y', '\'', 178}, /* ² */
- {'~', 'o', 179}, /* ³ */
- {'C', ',', 180}, /* ´ */
- {'c', ',', 181}, /* µ */
- {'N', '~', 182}, /* ¶ */
- {'n', '~', 183}, /* · */
- {'~', '!', 184}, /* ¸ */
- {'~', '?', 185}, /* ¹ */
- {'o', 'x', 186}, /* º */
- {'L', '-', 187}, /* » */
- {'Y', '=', 188}, /* ¼ */
- {'p', 'p', 189}, /* ½ */
- {'f', 'l', 190}, /* ¾ */
- {'c', '|', 191}, /* ¿ */
- {'a', '^', 192}, /* À */
- {'e', '^', 193}, /* Á */
- {'o', '^', 194}, /* Â */
- {'u', '^', 195}, /* Ã */
- {'a', '\'', 196}, /* Ä */
- {'e', '\'', 197}, /* Å */
- {'o', '\'', 198}, /* Æ */
- {'u', '\'', 199}, /* Ç */
- {'a', '`', 200}, /* È */
- {'e', '`', 201}, /* É */
- {'o', '`', 202}, /* Ê */
- {'u', '`', 203}, /* Ë */
- {'a', '"', 204}, /* Ì */
- {'e', '"', 205}, /* Í */
- {'o', '"', 206}, /* Î */
- {'u', '"', 207}, /* Ï */
- {'A', 'o', 208}, /* Ð */
- {'i', '^', 209}, /* Ñ */
- {'O', '/', 210}, /* Ò */
- {'A', 'E', 211}, /* Ó */
- {'a', 'o', 212}, /* Ô */
- {'i', '\'', 213}, /* Õ */
- {'o', '/', 214}, /* Ö */
- {'a', 'e', 215}, /* × */
- {'A', '"', 216}, /* Ø */
- {'i', '`', 217}, /* Ù */
- {'O', '"', 218}, /* Ú */
- {'U', '"', 219}, /* Û */
- {'E', '\'', 220}, /* Ü */
- {'i', '"', 221}, /* Ý */
- {'s', 's', 222}, /* Þ */
- {'O', '^', 223}, /* ß */
- {'A', '\'', 224}, /* à */
- {'A', '~', 225}, /* á */
- {'a', '~', 226}, /* â */
- {'D', '-', 227}, /* ã */
- {'d', '-', 228}, /* ä */
- {'I', '\'', 229}, /* å */
- {'I', '`', 230}, /* æ */
- {'O', '\'', 231}, /* ç */
- {'O', '`', 232}, /* è */
- {'O', '~', 233}, /* é */
- {'o', '~', 234}, /* ê */
- {'S', '~', 235}, /* ë */
- {'s', '~', 236}, /* ì */
- {'U', '\'', 237}, /* í */
- {'Y', '"', 238}, /* î */
- {'y', '"', 239}, /* ï */
- {'p', '-', 240}, /* ð */
- {'p', '~', 241}, /* ñ */
- {'~', '.', 242}, /* ò */
- {'j', 'u', 243}, /* ó */
- {'P', 'p', 244}, /* ô */
- {'3', '4', 245}, /* õ */
- {'-', '-', 246}, /* ö */
- {'1', '4', 247}, /* ÷ */
- {'1', '2', 248}, /* ø */
- {'a', '_', 249}, /* ù */
- {'o', '_', 250}, /* ú */
- {'<', '<', 251}, /* û */
- {'x', 'x', 252}, /* ü */
- {'>', '>', 253}, /* ý */
- {'+', '-', 254}, /* þ */
- {'n', 'u', 255}, /* x XX */
- {NUL, NUL, NUL}
- };
-
- # else /* !HPUX_DIGRAPHS */
-
- # ifdef EBCDIC
-
- /*
- * EBCDIC - ISO digraphs
- * TODO: EBCDIC Table is Code-Page 1047
- */
- digr_T digraphdefault[] =
- {{'a', '^', 66}, /* â */
- {'a', '"', 67}, /* ä */
- {'a', '`', 68}, /* à */
- {'a', '\'', 69}, /* á */
- {'a', '~', 70}, /* ã */
- {'a', '@', 71}, /* å */
- {'a', 'a', 71}, /* å */
- {'c', ',', 72}, /* ç */
- {'n', '~', 73}, /* ñ */
- {'c', '|', 74}, /* ¢ */
- {'e', '\'', 81}, /* é */
- {'e', '^', 82}, /* ê */
- {'e', '"', 83}, /* ë */
- {'e', '`', 84}, /* è */
- {'i', '\'', 85}, /* í */
- {'i', '^', 86}, /* î */
- {'i', '"', 87}, /* ï */
- {'i', '`', 88}, /* ì */
- {'s', 's', 89}, /* ß */
- {'A', '^', 98}, /* Â */
- {'A', '"', 99}, /* Ä */
- {'A', '`', 100}, /* À */
- {'A', '\'', 101}, /* Á */
- {'A', '~', 102}, /* Ã */
- {'A', '@', 103}, /* Å */
- {'A', 'A', 103}, /* Å */
- {'C', ',', 104}, /* Ç */
- {'N', '~', 105}, /* Ñ */
- {'|', '|', 106}, /* ¦ */
- {'o', '/', 112}, /* ø */
- {'E', '\'', 113}, /* É */
- {'E', '^', 114}, /* Ê */
- {'E', '"', 115}, /* Ë */
- {'E', '`', 116}, /* È */
- {'I', '\'', 117}, /* Í */
- {'I', '^', 118}, /* Î */
- {'I', '"', 119}, /* Ï */
- {'I', '`', 120}, /* Ì */
- {'O', '/', 128}, /* 0/ XX */
- {'<', '<', 138}, /* « */
- {'>', '>', 139}, /* » */
- {'d', '-', 140}, /* ð */
- {'y', '\'', 141}, /* ý */
- {'i', 'p', 142}, /* þ */
- {'+', '-', 143}, /* ± */
- {'~', 'o', 144}, /* ° */
- {'a', '-', 154}, /* ª */
- {'o', '-', 155}, /* º */
- {'a', 'e', 156}, /* æ */
- {',', ',', 157}, /* , XX */
- {'A', 'E', 158}, /* Æ */
- {'o', 'x', 159}, /* ¤ - currency symbol in ISO 8859-1 */
- {'e', '=', 159}, /* ¤ - euro symbol in ISO 8859-15 */
- {'j', 'u', 160}, /* µ */
- {'y', '"', 167}, /* x XX */
- {'~', '!', 170}, /* ¡ */
- {'~', '?', 171}, /* ¿ */
- {'D', '-', 172}, /* Ð */
- {'I', 'p', 174}, /* Þ */
- {'r', 'O', 175}, /* ® */
- {'-', ',', 176}, /* ¬ */
- {'$', '$', 177}, /* £ */
- {'Y', '-', 178}, /* ¥ */
- {'~', '.', 179}, /* · */
- {'c', 'O', 180}, /* © */
- {'p', 'a', 181}, /* § */
- {'p', 'p', 182}, /* ¶ */
- {'1', '4', 183}, /* ¼ */
- {'1', '2', 184}, /* ½ */
- {'3', '4', 185}, /* ¾ */
- {'Y', '\'', 186}, /* Ý */
- {'"', '"', 187}, /* ¨ */
- {'-', '=', 188}, /* ¯ */
- {'\'', '\'', 190}, /* ´ */
- {'O', 'E', 191}, /* × - OE in ISO 8859-15 */
- {'/', '\\', 191}, /* × - multiplication symbol in ISO 8859-1 */
- {'-', '-', 202}, /* */
- {'o', '^', 203}, /* ô */
- {'o', '"', 204}, /* ö */
- {'o', '`', 205}, /* ò */
- {'o', '\'', 206}, /* ó */
- {'o', '~', 207}, /* õ */
- {'1', '1', 218}, /* ¹ */
- {'u', '^', 219}, /* û */
- {'u', '"', 220}, /* ü */
- {'u', '`', 221}, /* ù */
- {'u', '\'', 222}, /* ú */
- {':', '-', 225}, /* ÷ - division symbol in ISO 8859-1 */
- {'o', 'e', 225}, /* ÷ - oe in ISO 8859-15 */
- {'2', '2', 234}, /* ² */
- {'O', '^', 235}, /* Ô */
- {'O', '"', 236}, /* Ö */
- {'O', '`', 237}, /* Ò */
- {'O', '\'', 238}, /* Ó */
- {'O', '~', 239}, /* Õ */
- {'3', '3', 250}, /* ³ */
- {'U', '^', 251}, /* Û */
- {'U', '"', 252}, /* Ü */
- {'U', '`', 253}, /* Ù */
- {'U', '\'', 254}, /* Ú */
- {NUL, NUL, NUL}
- };
-
- # else
- # ifdef MACOS
-
- /*
- * Macintosh digraphs
- */
- digr_T digraphdefault[] =
- {{'a', 't', 64}, /* @ */
- {'A', '"', 128}, /* ~@ XX */
- {'A', 'o', 129}, /* Å */
- {'C', ',', 130}, /* Ç */
- {'E', '\'', 131}, /* É */
- {'N', '~', 132}, /* Ñ */
- {'O', '"', 133}, /* Ö */
- {'U', '"', 134}, /* Ü */
- {'a', '\'', 135}, /* ~G XX */
- {'a', '`', 136}, /* ~H XX */
- {'a', '^', 137}, /* â */
- {'a', '"', 138}, /* ä */
- {'a', '~', 139}, /* ã */
- {'a', 'o', 140}, /* å */
- {'c', ',', 141}, /* ç */
- {'e', '\'', 142}, /* é */
- {'e', '`', 143}, /* è */
- {'e', '^', 144}, /* ê */
- {'e', '"', 145}, /* ë */
- {'i', '\'', 146}, /* í */
- {'i', '`', 147}, /* ì */
- {'i', '^', 148}, /* î */
- {'i', '"', 149}, /* ï */
- {'n', '~', 150}, /* ñ */
- {'o', '\'', 151}, /* ó */
- {'o', '`', 152}, /* ò */
- {'o', '^', 153}, /* ô */
- {'o', '"', 154}, /* ö */
- {'o', '~', 155}, /* o */
- {'u', '\'', 156}, /* ú */
- {'u', '`', 157}, /* ~] XX */
- {'u', '^', 158}, /* û */
- {'u', '"', 159}, /* ü */
- {'+', '_', 160}, /* Ý */
- {'~', 'o', 161}, /* ° */
- {'c', '|', 162}, /* ¢ */
- {'$', '$', 163}, /* £ */
- {'p', 'a', 164}, /* § */
- {'.', '.', 165}, /* * */
- {'P', 'P', 166}, /* ¶ */
- {'s', 's', 167}, /* ß */
- {'r', 'O', 168}, /* ® */
- {'c', 'O', 169}, /* © */
- {'T', 'M', 170}, /* */
- {'=', '/', 173}, /* */
- {'A', 'E', 174}, /* Æ */
- {'O', '/', 175}, /* Ø */
- {'0', '0', 176}, /* */
- {'+', '-', 177}, /* ± */
- {'<', '=', 178}, /* ¾ */
- {'>', '=', 179}, /* */
- {'Y', '-', 180}, /* ¥ */
- {'j', 'u', 181}, /* µ */
- {'m', 'u', 181}, /* µ */
- {'d', 'd', 182}, /* */
- {'S', 'S', 183}, /*
*/
- {'S', 'I', 183}, /*
*/
- {'P', 'I', 184}, /* ½ */
- {'p', 'i', 185}, /* ¼ */
- {'I', 'I', 186}, /* */
- {'a', '-', 187}, /* » */
- {'o', '-', 188}, /* º */
- {'O', 'M', 189}, /* ½ */
- {'a', 'e', 190}, /* æ */
- {'o', '/', 191}, /* ø */
- {'~', '?', 192}, /* ¿ */
- {'~', '!', 193}, /* ¡ */
- {'-', ',', 194}, /* ¬ */
- {'v', '-', 195}, /* ~H XX */
- {'f', '-', 196}, /* */
- {'~', '~', 197}, /* */
- {'D', 'E', 198}, /* */
- {'<', '<', 199}, /* « */
- {'>', '>', 200}, /* » */
- {'.', ':', 201}, /* */
- {'A', '`', 203}, /* À */
- {'A', '~', 204}, /* Ã */
- {'O', '~', 205}, /* Õ */
- {'O', 'E', 206}, /* */
- {'o', 'e', 207}, /* ¦ */
- {'-', '.', 208}, /* - */
- {'-', '-', 209}, /* - */
- {'`', '`', 210}, /* " */
- {'\'', '\'', 211}, /* " */
- {'`', ' ', 212}, /* ' */
- {'\'', ' ', 213}, /* ' */
- {'-', ':', 214}, /* ÷ */
- {'D', 'I', 215}, /* × */
- {'y', ':', 216}, /* ÿ */
- {'Y', ':', 217}, /* */
- {'/', '/', 218}, /* */
- {'E', '=', 219}, /* ¤ Euro System >=8.5 */
- {'o', 'x', 219}, /* ¤ Currency System <=8.1*/
- {'<', ' ', 220}, /* Ð */
- {'>', ' ', 221}, /* ð */
- {'f', 'i', 222}, /* Þ */
- {'f', 'l', 223}, /* þ */
- {'+', '+', 224}, /* ý */
- {'~', '.', 225}, /* · */
- {',', ' ', 226}, /* */
- {',', ',', 227}, /* */
- {'%', '.', 228}, /* */
- {'%', '0', 228}, /* */
- {'A', '^', 229}, /* Â */
- {'E', '^', 230}, /* Ê */
- {'A', '\'', 231}, /* Á */
- {'E', '"', 232}, /* Ë */
- {'E', '`', 233}, /* È */
- {'I', '\'', 234}, /* Í */
- {'I', '^', 235}, /* Î */
- {'I', '"', 236}, /* Ï */
- {'I', '`', 237}, /* Ì */
- {'O', '\'', 238}, /* Ó */
- {'O', '^', 239}, /* Ô */
- {'A', 'P', 240}, /* */
- {'O', '`', 241}, /* Ò */
- {'U', '\'', 242}, /* Ú */
- {'U', '^', 243}, /* Û */
- {'U', '`', 244}, /* Ù */
- {'i', '.', 245}, /* */
- {NUL, NUL, NUL}
- };
-
- # else /* !MACOS */
-
- # ifdef OLD_DIGRAPHS
-
- /*
- * digraphs compatible with Vim 5.x
- */
- digr_T digraphdefault[] =
- {{'~', '!', 161}, /* ¡ */
- {'c', '|', 162}, /* ¢ */
- {'$', '$', 163}, /* £ */
- {'o', 'x', 164}, /* ¤ - currency symbol in ISO 8859-1 */
- {'e', '=', 164}, /* ¤ - euro symbol in ISO 8859-15 */
- {'Y', '-', 165}, /* ¥ */
- {'|', '|', 166}, /* ¦ */
- {'p', 'a', 167}, /* § */
- {'"', '"', 168}, /* ¨ */
- {'c', 'O', 169}, /* © */
- {'a', '-', 170}, /* ª */
- {'<', '<', 171}, /* « */
- {'-', ',', 172}, /* ¬ */
- {'-', '-', 173}, /* */
- {'r', 'O', 174}, /* ® */
- {'-', '=', 175}, /* ¯ */
- {'~', 'o', 176}, /* ° */
- {'+', '-', 177}, /* ± */
- {'2', '2', 178}, /* ² */
- {'3', '3', 179}, /* ³ */
- {'\'', '\'', 180}, /* ´ */
- {'j', 'u', 181}, /* µ */
- {'p', 'p', 182}, /* ¶ */
- {'~', '.', 183}, /* · */
- {',', ',', 184}, /* ¸ */
- {'1', '1', 185}, /* ¹ */
- {'o', '-', 186}, /* º */
- {'>', '>', 187}, /* » */
- {'1', '4', 188}, /* ¼ */
- {'1', '2', 189}, /* ½ */
- {'3', '4', 190}, /* ¾ */
- {'~', '?', 191}, /* ¿ */
- {'A', '`', 192}, /* À */
- {'A', '\'', 193}, /* Á */
- {'A', '^', 194}, /* Â */
- {'A', '~', 195}, /* Ã */
- {'A', '"', 196}, /* Ä */
- {'A', '@', 197}, /* Å */
- {'A', 'A', 197}, /* Å */
- {'A', 'E', 198}, /* Æ */
- {'C', ',', 199}, /* Ç */
- {'E', '`', 200}, /* È */
- {'E', '\'', 201}, /* É */
- {'E', '^', 202}, /* Ê */
- {'E', '"', 203}, /* Ë */
- {'I', '`', 204}, /* Ì */
- {'I', '\'', 205}, /* Í */
- {'I', '^', 206}, /* Î */
- {'I', '"', 207}, /* Ï */
- {'D', '-', 208}, /* Ð */
- {'N', '~', 209}, /* Ñ */
- {'O', '`', 210}, /* Ò */
- {'O', '\'', 211}, /* Ó */
- {'O', '^', 212}, /* Ô */
- {'O', '~', 213}, /* Õ */
- {'O', '"', 214}, /* Ö */
- {'/', '\\', 215}, /* × - multiplication symbol in ISO 8859-1 */
- {'O', 'E', 215}, /* × - OE in ISO 8859-15 */
- {'O', '/', 216}, /* Ø */
- {'U', '`', 217}, /* Ù */
- {'U', '\'', 218}, /* Ú */
- {'U', '^', 219}, /* Û */
- {'U', '"', 220}, /* Ü */
- {'Y', '\'', 221}, /* Ý */
- {'I', 'p', 222}, /* Þ */
- {'s', 's', 223}, /* ß */
- {'a', '`', 224}, /* à */
- {'a', '\'', 225}, /* á */
- {'a', '^', 226}, /* â */
- {'a', '~', 227}, /* ã */
- {'a', '"', 228}, /* ä */
- {'a', '@', 229}, /* å */
- {'a', 'a', 229}, /* å */
- {'a', 'e', 230}, /* æ */
- {'c', ',', 231}, /* ç */
- {'e', '`', 232}, /* è */
- {'e', '\'', 233}, /* é */
- {'e', '^', 234}, /* ê */
- {'e', '"', 235}, /* ë */
- {'i', '`', 236}, /* ì */
- {'i', '\'', 237}, /* í */
- {'i', '^', 238}, /* î */
- {'i', '"', 239}, /* ï */
- {'d', '-', 240}, /* ð */
- {'n', '~', 241}, /* ñ */
- {'o', '`', 242}, /* ò */
- {'o', '\'', 243}, /* ó */
- {'o', '^', 244}, /* ô */
- {'o', '~', 245}, /* õ */
- {'o', '"', 246}, /* ö */
- {':', '-', 247}, /* ÷ - division symbol in ISO 8859-1 */
- {'o', 'e', 247}, /* ÷ - oe in ISO 8859-15 */
- {'o', '/', 248}, /* ø */
- {'u', '`', 249}, /* ù */
- {'u', '\'', 250}, /* ú */
- {'u', '^', 251}, /* û */
- {'u', '"', 252}, /* ü */
- {'y', '\'', 253}, /* ý */
- {'i', 'p', 254}, /* þ */
- {'y', '"', 255}, /* x XX */
- {NUL, NUL, NUL}
- };
- # else /* OLD_DIGRAPHS */
-
- /*
- * digraphs for Unicode from RFC1345
- * (also work for ISO-8859-1 aka latin1)
- */
- digr_T digraphdefault[] =
- {
- {'N', 'U', 0x0a}, /* LF for NUL */
- {'S', 'H', 0x01},
- {'S', 'X', 0x02},
- {'E', 'X', 0x03},
- {'E', 'T', 0x04},
- {'E', 'Q', 0x05},
- {'A', 'K', 0x06},
- {'B', 'L', 0x07},
- {'B', 'S', 0x08},
- {'H', 'T', 0x09},
- {'L', 'F', 0x0a},
- {'V', 'T', 0x0b},
- {'F', 'F', 0x0c},
- {'C', 'R', 0x0d},
- {'S', 'O', 0x0e},
- {'S', 'I', 0x0f},
- {'D', 'L', 0x10},
- {'D', '1', 0x11},
- {'D', '2', 0x12},
- {'D', '3', 0x13},
- {'D', '4', 0x14},
- {'N', 'K', 0x15},
- {'S', 'Y', 0x16},
- {'E', 'B', 0x17},
- {'C', 'N', 0x18},
- {'E', 'M', 0x19},
- {'S', 'B', 0x1a},
- {'E', 'C', 0x1b},
- {'F', 'S', 0x1c},
- {'G', 'S', 0x1d},
- {'R', 'S', 0x1e},
- {'U', 'S', 0x1f},
- {'S', 'P', 0x20},
- {'N', 'b', 0x23},
- {'D', 'O', 0x24},
- {'A', 't', 0x40},
- {'<', '(', 0x5b},
- {'/', '/', 0x5c},
- {')', '>', 0x5d},
- {'\'', '>', 0x5e},
- {'\'', '!', 0x60},
- {'(', '!', 0x7b},
- {'!', '!', 0x7c},
- {'!', ')', 0x7d},
- {'\'', '?', 0x7e},
- {'D', 'T', 0x7f},
- {'P', 'A', 0x80},
- {'H', 'O', 0x81},
- {'B', 'H', 0x82},
- {'N', 'H', 0x83},
- {'I', 'N', 0x84},
- {'N', 'L', 0x85},
- {'S', 'A', 0x86},
- {'E', 'S', 0x87},
- {'H', 'S', 0x88},
- {'H', 'J', 0x89},
- {'V', 'S', 0x8a},
- {'P', 'D', 0x8b},
- {'P', 'U', 0x8c},
- {'R', 'I', 0x8d},
- {'S', '2', 0x8e},
- {'S', '3', 0x8f},
- {'D', 'C', 0x90},
- {'P', '1', 0x91},
- {'P', '2', 0x92},
- {'T', 'S', 0x93},
- {'C', 'C', 0x94},
- {'M', 'W', 0x95},
- {'S', 'G', 0x96},
- {'E', 'G', 0x97},
- {'S', 'S', 0x98},
- {'G', 'C', 0x99},
- {'S', 'C', 0x9a},
- {'C', 'I', 0x9b},
- {'S', 'T', 0x9c},
- {'O', 'C', 0x9d},
- {'P', 'M', 0x9e},
- {'A', 'C', 0x9f},
- {'N', 'S', 0xa0},
- {'!', 'I', 0xa1},
- {'C', 't', 0xa2},
- {'P', 'd', 0xa3},
- {'C', 'u', 0xa4},
- {'Y', 'e', 0xa5},
- {'B', 'B', 0xa6},
- {'S', 'E', 0xa7},
- {'\'', ':', 0xa8},
- {'C', 'o', 0xa9},
- {'-', 'a', 0xaa},
- {'<', '<', 0xab},
- {'N', 'O', 0xac},
- {'-', '-', 0xad},
- {'R', 'g', 0xae},
- {'\'', 'm', 0xaf},
- {'D', 'G', 0xb0},
- {'+', '-', 0xb1},
- {'2', 'S', 0xb2},
- {'3', 'S', 0xb3},
- {'\'', '\'', 0xb4},
- {'M', 'y', 0xb5},
- {'P', 'I', 0xb6},
- {'.', 'M', 0xb7},
- {'\'', ',', 0xb8},
- {'1', 'S', 0xb9},
- {'-', 'o', 0xba},
- {'>', '>', 0xbb},
- {'1', '4', 0xbc},
- {'1', '2', 0xbd},
- {'3', '4', 0xbe},
- {'?', 'I', 0xbf},
- {'A', '!', 0xc0},
- {'A', '\'', 0xc1},
- {'A', '>', 0xc2},
- {'A', '?', 0xc3},
- {'A', ':', 0xc4},
- {'A', 'A', 0xc5},
- {'A', 'E', 0xc6},
- {'C', ',', 0xc7},
- {'E', '!', 0xc8},
- {'E', '\'', 0xc9},
- {'E', '>', 0xca},
- {'E', ':', 0xcb},
- {'I', '!', 0xcc},
- {'I', '\'', 0xcd},
- {'I', '>', 0xce},
- {'I', ':', 0xcf},
- {'D', '-', 0xd0},
- {'N', '?', 0xd1},
- {'O', '!', 0xd2},
- {'O', '\'', 0xd3},
- {'O', '>', 0xd4},
- {'O', '?', 0xd5},
- {'O', ':', 0xd6},
- {'*', 'X', 0xd7},
- {'O', '/', 0xd8},
- {'U', '!', 0xd9},
- {'U', '\'', 0xda},
- {'U', '>', 0xdb},
- {'U', ':', 0xdc},
- {'Y', '\'', 0xdd},
- {'T', 'H', 0xde},
- {'s', 's', 0xdf},
- {'a', '!', 0xe0},
- {'a', '\'', 0xe1},
- {'a', '>', 0xe2},
- {'a', '?', 0xe3},
- {'a', ':', 0xe4},
- {'a', 'a', 0xe5},
- {'a', 'e', 0xe6},
- {'c', ',', 0xe7},
- {'e', '!', 0xe8},
- {'e', '\'', 0xe9},
- {'e', '>', 0xea},
- {'e', ':', 0xeb},
- {'i', '!', 0xec},
- {'i', '\'', 0xed},
- {'i', '>', 0xee},
- {'i', ':', 0xef},
- {'d', '-', 0xf0},
- {'n', '?', 0xf1},
- {'o', '!', 0xf2},
- {'o', '\'', 0xf3},
- {'o', '>', 0xf4},
- {'o', '?', 0xf5},
- {'o', ':', 0xf6},
- {'-', ':', 0xf7},
- {'o', '/', 0xf8},
- {'u', '!', 0xf9},
- {'u', '\'', 0xfa},
- {'u', '>', 0xfb},
- {'u', ':', 0xfc},
- {'y', '\'', 0xfd},
- {'t', 'h', 0xfe},
- {'y', ':', 0xff},
-
- # ifdef FEAT_MBYTE
-
- {'A', '-', 0x0100},
- {'a', '-', 0x0101},
- {'A', '(', 0x0102},
- {'a', '(', 0x0103},
- {'A', ';', 0x0104},
- {'a', ';', 0x0105},
- {'C', '\'', 0x0106},
- {'c', '\'', 0x0107},
- {'C', '>', 0x0108},
- {'c', '>', 0x0109},
- {'C', '.', 0x010a},
- {'c', '.', 0x010b},
- {'C', '<', 0x010c},
- {'c', '<', 0x010d},
- {'D', '<', 0x010e},
- {'d', '<', 0x010f},
- {'D', '/', 0x0110},
- {'d', '/', 0x0111},
- {'E', '-', 0x0112},
- {'e', '-', 0x0113},
- {'E', '(', 0x0114},
- {'e', '(', 0x0115},
- {'E', '.', 0x0116},
- {'e', '.', 0x0117},
- {'E', ';', 0x0118},
- {'e', ';', 0x0119},
- {'E', '<', 0x011a},
- {'e', '<', 0x011b},
- {'G', '>', 0x011c},
- {'g', '>', 0x011d},
- {'G', '(', 0x011e},
- {'g', '(', 0x011f},
- {'G', '.', 0x0120},
- {'g', '.', 0x0121},
- {'G', ',', 0x0122},
- {'g', ',', 0x0123},
- {'H', '>', 0x0124},
- {'h', '>', 0x0125},
- {'H', '/', 0x0126},
- {'h', '/', 0x0127},
- {'I', '?', 0x0128},
- {'i', '?', 0x0129},
- {'I', '-', 0x012a},
- {'i', '-', 0x012b},
- {'I', '(', 0x012c},
- {'i', '(', 0x012d},
- {'I', ';', 0x012e},
- {'i', ';', 0x012f},
- {'I', '.', 0x0130},
- {'i', '.', 0x0131},
- {'I', 'J', 0x0132},
- {'i', 'j', 0x0133},
- {'J', '>', 0x0134},
- {'j', '>', 0x0135},
- {'K', ',', 0x0136},
- {'k', ',', 0x0137},
- {'k', 'k', 0x0138},
- {'L', '\'', 0x0139},
- {'l', '\'', 0x013a},
- {'L', ',', 0x013b},
- {'l', ',', 0x013c},
- {'L', '<', 0x013d},
- {'l', '<', 0x013e},
- {'L', '.', 0x013f},
- {'l', '.', 0x0140},
- {'L', '/', 0x0141},
- {'l', '/', 0x0142},
- {'N', '\'', 0x0143},
- {'n', '\'', 0x0144},
- {'N', ',', 0x0145},
- {'n', ',', 0x0146},
- {'N', '<', 0x0147},
- {'n', '<', 0x0148},
- {'\'', 'n', 0x0149},
- {'N', 'G', 0x014a},
- {'n', 'g', 0x014b},
- {'O', '-', 0x014c},
- {'o', '-', 0x014d},
- {'O', '(', 0x014e},
- {'o', '(', 0x014f},
- {'O', '"', 0x0150},
- {'o', '"', 0x0151},
- {'O', 'E', 0x0152},
- {'o', 'e', 0x0153},
- {'R', '\'', 0x0154},
- {'r', '\'', 0x0155},
- {'R', ',', 0x0156},
- {'r', ',', 0x0157},
- {'R', '<', 0x0158},
- {'r', '<', 0x0159},
- {'S', '\'', 0x015a},
- {'s', '\'', 0x015b},
- {'S', '>', 0x015c},
- {'s', '>', 0x015d},
- {'S', ',', 0x015e},
- {'s', ',', 0x015f},
- {'S', '<', 0x0160},
- {'s', '<', 0x0161},
- {'T', ',', 0x0162},
- {'t', ',', 0x0163},
- {'T', '<', 0x0164},
- {'t', '<', 0x0165},
- {'T', '/', 0x0166},
- {'t', '/', 0x0167},
- {'U', '?', 0x0168},
- {'u', '?', 0x0169},
- {'U', '-', 0x016a},
- {'u', '-', 0x016b},
- {'U', '(', 0x016c},
- {'u', '(', 0x016d},
- {'U', '0', 0x016e},
- {'u', '0', 0x016f},
- {'U', '"', 0x0170},
- {'u', '"', 0x0171},
- {'U', ';', 0x0172},
- {'u', ';', 0x0173},
- {'W', '>', 0x0174},
- {'w', '>', 0x0175},
- {'Y', '>', 0x0176},
- {'y', '>', 0x0177},
- {'Y', ':', 0x0178},
- {'Z', '\'', 0x0179},
- {'z', '\'', 0x017a},
- {'Z', '.', 0x017b},
- {'z', '.', 0x017c},
- {'Z', '<', 0x017d},
- {'z', '<', 0x017e},
- {'O', '9', 0x01a0},
- {'o', '9', 0x01a1},
- {'O', 'I', 0x01a2},
- {'o', 'i', 0x01a3},
- {'y', 'r', 0x01a6},
- {'U', '9', 0x01af},
- {'u', '9', 0x01b0},
- {'Z', '/', 0x01b5},
- {'z', '/', 0x01b6},
- {'E', 'D', 0x01b7},
- {'A', '<', 0x01cd},
- {'a', '<', 0x01ce},
- {'I', '<', 0x01cf},
- {'i', '<', 0x01d0},
- {'O', '<', 0x01d1},
- {'o', '<', 0x01d2},
- {'U', '<', 0x01d3},
- {'u', '<', 0x01d4},
- {'A', '1', 0x01de},
- {'a', '1', 0x01df},
- {'A', '7', 0x01e0},
- {'a', '7', 0x01e1},
- {'A', '3', 0x01e2},
- {'a', '3', 0x01e3},
- {'G', '/', 0x01e4},
- {'g', '/', 0x01e5},
- {'G', '<', 0x01e6},
- {'g', '<', 0x01e7},
- {'K', '<', 0x01e8},
- {'k', '<', 0x01e9},
- {'O', ';', 0x01ea},
- {'o', ';', 0x01eb},
- {'O', '1', 0x01ec},
- {'o', '1', 0x01ed},
- {'E', 'Z', 0x01ee},
- {'e', 'z', 0x01ef},
- {'j', '<', 0x01f0},
- {'G', '\'', 0x01f4},
- {'g', '\'', 0x01f5},
- {';', 'S', 0x02bf},
- {'\'', '<', 0x02c7},
- {'\'', '(', 0x02d8},
- {'\'', '.', 0x02d9},
- {'\'', '0', 0x02da},
- {'\'', ';', 0x02db},
- {'\'', '"', 0x02dd},
- {'A', '%', 0x0386},
- {'E', '%', 0x0388},
- {'Y', '%', 0x0389},
- {'I', '%', 0x038a},
- {'O', '%', 0x038c},
- {'U', '%', 0x038e},
- {'W', '%', 0x038f},
- {'i', '3', 0x0390},
- {'A', '*', 0x0391},
- {'B', '*', 0x0392},
- {'G', '*', 0x0393},
- {'D', '*', 0x0394},
- {'E', '*', 0x0395},
- {'Z', '*', 0x0396},
- {'Y', '*', 0x0397},
- {'H', '*', 0x0398},
- {'I', '*', 0x0399},
- {'K', '*', 0x039a},
- {'L', '*', 0x039b},
- {'M', '*', 0x039c},
- {'N', '*', 0x039d},
- {'C', '*', 0x039e},
- {'O', '*', 0x039f},
- {'P', '*', 0x03a0},
- {'R', '*', 0x03a1},
- {'S', '*', 0x03a3},
- {'T', '*', 0x03a4},
- {'U', '*', 0x03a5},
- {'F', '*', 0x03a6},
- {'X', '*', 0x03a7},
- {'Q', '*', 0x03a8},
- {'W', '*', 0x03a9},
- {'J', '*', 0x03aa},
- {'V', '*', 0x03ab},
- {'a', '%', 0x03ac},
- {'e', '%', 0x03ad},
- {'y', '%', 0x03ae},
- {'i', '%', 0x03af},
- {'u', '3', 0x03b0},
- {'a', '*', 0x03b1},
- {'b', '*', 0x03b2},
- {'g', '*', 0x03b3},
- {'d', '*', 0x03b4},
- {'e', '*', 0x03b5},
- {'z', '*', 0x03b6},
- {'y', '*', 0x03b7},
- {'h', '*', 0x03b8},
- {'i', '*', 0x03b9},
- {'k', '*', 0x03ba},
- {'l', '*', 0x03bb},
- {'m', '*', 0x03bc},
- {'n', '*', 0x03bd},
- {'c', '*', 0x03be},
- {'o', '*', 0x03bf},
- {'p', '*', 0x03c0},
- {'r', '*', 0x03c1},
- {'*', 's', 0x03c2},
- {'s', '*', 0x03c3},
- {'t', '*', 0x03c4},
- {'u', '*', 0x03c5},
- {'f', '*', 0x03c6},
- {'x', '*', 0x03c7},
- {'q', '*', 0x03c8},
- {'w', '*', 0x03c9},
- {'j', '*', 0x03ca},
- {'v', '*', 0x03cb},
- {'o', '%', 0x03cc},
- {'u', '%', 0x03cd},
- {'w', '%', 0x03ce},
- {'\'', 'G', 0x03d8},
- {',', 'G', 0x03d9},
- {'T', '3', 0x03da},
- {'t', '3', 0x03db},
- {'M', '3', 0x03dc},
- {'m', '3', 0x03dd},
- {'K', '3', 0x03de},
- {'k', '3', 0x03df},
- {'P', '3', 0x03e0},
- {'p', '3', 0x03e1},
- {'\'', '%', 0x03f4},
- {'j', '3', 0x03f5},
- {'I', 'O', 0x0401},
- {'D', '%', 0x0402},
- {'G', '%', 0x0403},
- {'I', 'E', 0x0404},
- {'D', 'S', 0x0405},
- {'I', 'I', 0x0406},
- {'Y', 'I', 0x0407},
- {'J', '%', 0x0408},
- {'L', 'J', 0x0409},
- {'N', 'J', 0x040a},
- {'T', 's', 0x040b},
- {'K', 'J', 0x040c},
- {'V', '%', 0x040e},
- {'D', 'Z', 0x040f},
- {'A', '=', 0x0410},
- {'B', '=', 0x0411},
- {'V', '=', 0x0412},
- {'G', '=', 0x0413},
- {'D', '=', 0x0414},
- {'E', '=', 0x0415},
- {'Z', '%', 0x0416},
- {'Z', '=', 0x0417},
- {'I', '=', 0x0418},
- {'J', '=', 0x0419},
- {'K', '=', 0x041a},
- {'L', '=', 0x041b},
- {'M', '=', 0x041c},
- {'N', '=', 0x041d},
- {'O', '=', 0x041e},
- {'P', '=', 0x041f},
- {'R', '=', 0x0420},
- {'S', '=', 0x0421},
- {'T', '=', 0x0422},
- {'U', '=', 0x0423},
- {'F', '=', 0x0424},
- {'H', '=', 0x0425},
- {'C', '=', 0x0426},
- {'C', '%', 0x0427},
- {'S', '%', 0x0428},
- {'S', 'c', 0x0429},
- {'=', '"', 0x042a},
- {'Y', '=', 0x042b},
- {'%', '"', 0x042c},
- {'J', 'E', 0x042d},
- {'J', 'U', 0x042e},
- {'J', 'A', 0x042f},
- {'a', '=', 0x0430},
- {'b', '=', 0x0431},
- {'v', '=', 0x0432},
- {'g', '=', 0x0433},
- {'d', '=', 0x0434},
- {'e', '=', 0x0435},
- {'z', '%', 0x0436},
- {'z', '=', 0x0437},
- {'i', '=', 0x0438},
- {'j', '=', 0x0439},
- {'k', '=', 0x043a},
- {'l', '=', 0x043b},
- {'m', '=', 0x043c},
- {'n', '=', 0x043d},
- {'o', '=', 0x043e},
- {'p', '=', 0x043f},
- {'r', '=', 0x0440},
- {'s', '=', 0x0441},
- {'t', '=', 0x0442},
- {'u', '=', 0x0443},
- {'f', '=', 0x0444},
- {'h', '=', 0x0445},
- {'c', '=', 0x0446},
- {'c', '%', 0x0447},
- {'s', '%', 0x0448},
- {'s', 'c', 0x0449},
- {'=', '\'', 0x044a},
- {'y', '=', 0x044b},
- {'%', '\'', 0x044c},
- {'j', 'e', 0x044d},
- {'j', 'u', 0x044e},
- {'j', 'a', 0x044f},
- {'i', 'o', 0x0451},
- {'d', '%', 0x0452},
- {'g', '%', 0x0453},
- {'i', 'e', 0x0454},
- {'d', 's', 0x0455},
- {'i', 'i', 0x0456},
- {'y', 'i', 0x0457},
- {'j', '%', 0x0458},
- {'l', 'j', 0x0459},
- {'n', 'j', 0x045a},
- {'t', 's', 0x045b},
- {'k', 'j', 0x045c},
- {'v', '%', 0x045e},
- {'d', 'z', 0x045f},
- {'Y', '3', 0x0462},
- {'y', '3', 0x0463},
- {'O', '3', 0x046a},
- {'o', '3', 0x046b},
- {'F', '3', 0x0472},
- {'f', '3', 0x0473},
- {'V', '3', 0x0474},
- {'v', '3', 0x0475},
- {'C', '3', 0x0480},
- {'c', '3', 0x0481},
- {'G', '3', 0x0490},
- {'g', '3', 0x0491},
- {'A', '+', 0x05d0},
- {'B', '+', 0x05d1},
- {'G', '+', 0x05d2},
- {'D', '+', 0x05d3},
- {'H', '+', 0x05d4},
- {'W', '+', 0x05d5},
- {'Z', '+', 0x05d6},
- {'X', '+', 0x05d7},
- {'T', 'j', 0x05d8},
- {'J', '+', 0x05d9},
- {'K', '%', 0x05da},
- {'K', '+', 0x05db},
- {'L', '+', 0x05dc},
- {'M', '%', 0x05dd},
- {'M', '+', 0x05de},
- {'N', '%', 0x05df},
- {'N', '+', 0x05e0},
- {'S', '+', 0x05e1},
- {'E', '+', 0x05e2},
- {'P', '%', 0x05e3},
- {'P', '+', 0x05e4},
- {'Z', 'j', 0x05e5},
- {'Z', 'J', 0x05e6},
- {'Q', '+', 0x05e7},
- {'R', '+', 0x05e8},
- {'S', 'h', 0x05e9},
- {'T', '+', 0x05ea},
- {',', '+', 0x060c},
- {';', '+', 0x061b},
- {'?', '+', 0x061f},
- {'H', '\'', 0x0621},
- {'a', 'M', 0x0622},
- {'a', 'H', 0x0623},
- {'w', 'H', 0x0624},
- {'a', 'h', 0x0625},
- {'y', 'H', 0x0626},
- {'a', '+', 0x0627},
- {'b', '+', 0x0628},
- {'t', 'm', 0x0629},
- {'t', '+', 0x062a},
- {'t', 'k', 0x062b},
- {'g', '+', 0x062c},
- {'h', 'k', 0x062d},
- {'x', '+', 0x062e},
- {'d', '+', 0x062f},
- {'d', 'k', 0x0630},
- {'r', '+', 0x0631},
- {'z', '+', 0x0632},
- {'s', '+', 0x0633},
- {'s', 'n', 0x0634},
- {'c', '+', 0x0635},
- {'d', 'd', 0x0636},
- {'t', 'j', 0x0637},
- {'z', 'H', 0x0638},
- {'e', '+', 0x0639},
- {'i', '+', 0x063a},
- {'+', '+', 0x0640},
- {'f', '+', 0x0641},
- {'q', '+', 0x0642},
- {'k', '+', 0x0643},
- {'l', '+', 0x0644},
- {'m', '+', 0x0645},
- {'n', '+', 0x0646},
- {'h', '+', 0x0647},
- {'w', '+', 0x0648},
- {'j', '+', 0x0649},
- {'y', '+', 0x064a},
- {':', '+', 0x064b},
- {'"', '+', 0x064c},
- {'=', '+', 0x064d},
- {'/', '+', 0x064e},
- {'\'', '+', 0x064f},
- {'1', '+', 0x0650},
- {'3', '+', 0x0651},
- {'0', '+', 0x0652},
- {'a', 'S', 0x0670},
- {'p', '+', 0x067e},
- {'v', '+', 0x06a4},
- {'g', 'f', 0x06af},
- {'0', 'a', 0x06f0},
- {'1', 'a', 0x06f1},
- {'2', 'a', 0x06f2},
- {'3', 'a', 0x06f3},
- {'4', 'a', 0x06f4},
- {'5', 'a', 0x06f5},
- {'6', 'a', 0x06f6},
- {'7', 'a', 0x06f7},
- {'8', 'a', 0x06f8},
- {'9', 'a', 0x06f9},
- {'B', '.', 0x1e02},
- {'b', '.', 0x1e03},
- {'B', '_', 0x1e06},
- {'b', '_', 0x1e07},
- {'D', '.', 0x1e0a},
- {'d', '.', 0x1e0b},
- {'D', '_', 0x1e0e},
- {'d', '_', 0x1e0f},
- {'D', ',', 0x1e10},
- {'d', ',', 0x1e11},
- {'F', '.', 0x1e1e},
- {'f', '.', 0x1e1f},
- {'G', '-', 0x1e20},
- {'g', '-', 0x1e21},
- {'H', '.', 0x1e22},
- {'h', '.', 0x1e23},
- {'H', ':', 0x1e26},
- {'h', ':', 0x1e27},
- {'H', ',', 0x1e28},
- {'h', ',', 0x1e29},
- {'K', '\'', 0x1e30},
- {'k', '\'', 0x1e31},
- {'K', '_', 0x1e34},
- {'k', '_', 0x1e35},
- {'L', '_', 0x1e3a},
- {'l', '_', 0x1e3b},
- {'M', '\'', 0x1e3e},
- {'m', '\'', 0x1e3f},
- {'M', '.', 0x1e40},
- {'m', '.', 0x1e41},
- {'N', '.', 0x1e44},
- {'n', '.', 0x1e45},
- {'N', '_', 0x1e48},
- {'n', '_', 0x1e49},
- {'P', '\'', 0x1e54},
- {'p', '\'', 0x1e55},
- {'P', '.', 0x1e56},
- {'p', '.', 0x1e57},
- {'R', '.', 0x1e58},
- {'r', '.', 0x1e59},
- {'R', '_', 0x1e5e},
- {'r', '_', 0x1e5f},
- {'S', '.', 0x1e60},
- {'s', '.', 0x1e61},
- {'T', '.', 0x1e6a},
- {'t', '.', 0x1e6b},
- {'T', '_', 0x1e6e},
- {'t', '_', 0x1e6f},
- {'V', '?', 0x1e7c},
- {'v', '?', 0x1e7d},
- {'W', '!', 0x1e80},
- {'w', '!', 0x1e81},
- {'W', '\'', 0x1e82},
- {'w', '\'', 0x1e83},
- {'W', ':', 0x1e84},
- {'w', ':', 0x1e85},
- {'W', '.', 0x1e86},
- {'w', '.', 0x1e87},
- {'X', '.', 0x1e8a},
- {'x', '.', 0x1e8b},
- {'X', ':', 0x1e8c},
- {'x', ':', 0x1e8d},
- {'Y', '.', 0x1e8e},
- {'y', '.', 0x1e8f},
- {'Z', '>', 0x1e90},
- {'z', '>', 0x1e91},
- {'Z', '_', 0x1e94},
- {'z', '_', 0x1e95},
- {'h', '_', 0x1e96},
- {'t', ':', 0x1e97},
- {'w', '0', 0x1e98},
- {'y', '0', 0x1e99},
- {'A', '2', 0x1ea2},
- {'a', '2', 0x1ea3},
- {'E', '2', 0x1eba},
- {'e', '2', 0x1ebb},
- {'E', '?', 0x1ebc},
- {'e', '?', 0x1ebd},
- {'I', '2', 0x1ec8},
- {'i', '2', 0x1ec9},
- {'O', '2', 0x1ece},
- {'o', '2', 0x1ecf},
- {'U', '2', 0x1ee6},
- {'u', '2', 0x1ee7},
- {'Y', '!', 0x1ef2},
- {'y', '!', 0x1ef3},
- {'Y', '2', 0x1ef6},
- {'y', '2', 0x1ef7},
- {'Y', '?', 0x1ef8},
- {'y', '?', 0x1ef9},
- {';', '\'', 0x1f00},
- {',', '\'', 0x1f01},
- {';', '!', 0x1f02},
- {',', '!', 0x1f03},
- {'?', ';', 0x1f04},
- {'?', ',', 0x1f05},
- {'!', ':', 0x1f06},
- {'?', ':', 0x1f07},
- {'1', 'N', 0x2002},
- {'1', 'M', 0x2003},
- {'3', 'M', 0x2004},
- {'4', 'M', 0x2005},
- {'6', 'M', 0x2006},
- {'1', 'T', 0x2009},
- {'1', 'H', 0x200a},
- {'-', '1', 0x2010},
- {'-', 'N', 0x2013},
- {'-', 'M', 0x2014},
- {'-', '3', 0x2015},
- {'!', '2', 0x2016},
- {'=', '2', 0x2017},
- {'\'', '6', 0x2018},
- {'\'', '9', 0x2019},
- {'.', '9', 0x201a},
- {'9', '\'', 0x201b},
- {'"', '6', 0x201c},
- {'"', '9', 0x201d},
- {':', '9', 0x201e},
- {'9', '"', 0x201f},
- {'/', '-', 0x2020},
- {'/', '=', 0x2021},
- {'.', '.', 0x2025},
- {'%', '0', 0x2030},
- {'1', '\'', 0x2032},
- {'2', '\'', 0x2033},
- {'3', '\'', 0x2034},
- {'1', '"', 0x2035},
- {'2', '"', 0x2036},
- {'3', '"', 0x2037},
- {'C', 'a', 0x2038},
- {'<', '1', 0x2039},
- {'>', '1', 0x203a},
- {':', 'X', 0x203b},
- {'\'', '-', 0x203e},
- {'/', 'f', 0x2044},
- {'0', 'S', 0x2070},
- {'4', 'S', 0x2074},
- {'5', 'S', 0x2075},
- {'6', 'S', 0x2076},
- {'7', 'S', 0x2077},
- {'8', 'S', 0x2078},
- {'9', 'S', 0x2079},
- {'+', 'S', 0x207a},
- {'-', 'S', 0x207b},
- {'=', 'S', 0x207c},
- {'(', 'S', 0x207d},
- {')', 'S', 0x207e},
- {'n', 'S', 0x207f},
- {'0', 's', 0x2080},
- {'1', 's', 0x2081},
- {'2', 's', 0x2082},
- {'3', 's', 0x2083},
- {'4', 's', 0x2084},
- {'5', 's', 0x2085},
- {'6', 's', 0x2086},
- {'7', 's', 0x2087},
- {'8', 's', 0x2088},
- {'9', 's', 0x2089},
- {'+', 's', 0x208a},
- {'-', 's', 0x208b},
- {'=', 's', 0x208c},
- {'(', 's', 0x208d},
- {')', 's', 0x208e},
- {'L', 'i', 0x20a4},
- {'P', 't', 0x20a7},
- {'W', '=', 0x20a9},
- {'o', 'C', 0x2103},
- {'c', 'o', 0x2105},
- {'o', 'F', 0x2109},
- {'N', '0', 0x2116},
- {'P', 'O', 0x2117},
- {'R', 'x', 0x211e},
- {'S', 'M', 0x2120},
- {'T', 'M', 0x2122},
- {'O', 'm', 0x2126},
- {'A', 'O', 0x212b},
- {'1', '3', 0x2153},
- {'2', '3', 0x2154},
- {'1', '5', 0x2155},
- {'2', '5', 0x2156},
- {'3', '5', 0x2157},
- {'4', '5', 0x2158},
- {'1', '6', 0x2159},
- {'5', '6', 0x215a},
- {'1', '8', 0x215b},
- {'3', '8', 0x215c},
- {'5', '8', 0x215d},
- {'7', '8', 0x215e},
- {'1', 'R', 0x2160},
- {'2', 'R', 0x2161},
- {'3', 'R', 0x2162},
- {'4', 'R', 0x2163},
- {'5', 'R', 0x2164},
- {'6', 'R', 0x2165},
- {'7', 'R', 0x2166},
- {'8', 'R', 0x2167},
- {'9', 'R', 0x2168},
- {'a', 'R', 0x2169},
- {'b', 'R', 0x216a},
- {'c', 'R', 0x216b},
- {'1', 'r', 0x2170},
- {'2', 'r', 0x2171},
- {'3', 'r', 0x2172},
- {'4', 'r', 0x2173},
- {'5', 'r', 0x2174},
- {'6', 'r', 0x2175},
- {'7', 'r', 0x2176},
- {'8', 'r', 0x2177},
- {'9', 'r', 0x2178},
- {'a', 'r', 0x2179},
- {'b', 'r', 0x217a},
- {'c', 'r', 0x217b},
- {'<', '-', 0x2190},
- {'-', '!', 0x2191},
- {'-', '>', 0x2192},
- {'-', 'v', 0x2193},
- {'<', '>', 0x2194},
- {'U', 'D', 0x2195},
- {'<', '=', 0x21d0},
- {'=', '>', 0x21d2},
- {'=', '=', 0x21d4},
- {'F', 'A', 0x2200},
- {'d', 'P', 0x2202},
- {'T', 'E', 0x2203},
- {'/', '0', 0x2205},
- {'D', 'E', 0x2206},
- {'N', 'B', 0x2207},
- {'(', '-', 0x2208},
- {'-', ')', 0x220b},
- {'*', 'P', 0x220f},
- {'+', 'Z', 0x2211},
- {'-', '2', 0x2212},
- {'-', '+', 0x2213},
- {'*', '-', 0x2217},
- {'O', 'b', 0x2218},
- {'S', 'b', 0x2219},
- {'R', 'T', 0x221a},
- {'0', '(', 0x221d},
- {'0', '0', 0x221e},
- {'-', 'L', 0x221f},
- {'-', 'V', 0x2220},
- {'P', 'P', 0x2225},
- {'A', 'N', 0x2227},
- {'O', 'R', 0x2228},
- {'(', 'U', 0x2229},
- {')', 'U', 0x222a},
- {'I', 'n', 0x222b},
- {'D', 'I', 0x222c},
- {'I', 'o', 0x222e},
- {'.', ':', 0x2234},
- {':', '.', 0x2235},
- {':', 'R', 0x2236},
- {':', ':', 0x2237},
- {'?', '1', 0x223c},
- {'C', 'G', 0x223e},
- {'?', '-', 0x2243},
- {'?', '=', 0x2245},
- {'?', '2', 0x2248},
- {'=', '?', 0x224c},
- {'H', 'I', 0x2253},
- {'!', '=', 0x2260},
- {'=', '3', 0x2261},
- {'=', '<', 0x2264},
- {'>', '=', 0x2265},
- {'<', '*', 0x226a},
- {'*', '>', 0x226b},
- {'!', '<', 0x226e},
- {'!', '>', 0x226f},
- {'(', 'C', 0x2282},
- {')', 'C', 0x2283},
- {'(', '_', 0x2286},
- {')', '_', 0x2287},
- {'0', '.', 0x2299},
- {'0', '2', 0x229a},
- {'-', 'T', 0x22a5},
- {'.', 'P', 0x22c5},
- {':', '3', 0x22ee},
- {'.', '3', 0x22ef},
- {'E', 'h', 0x2302},
- {'<', '7', 0x2308},
- {'>', '7', 0x2309},
- {'7', '<', 0x230a},
- {'7', '>', 0x230b},
- {'N', 'I', 0x2310},
- {'(', 'A', 0x2312},
- {'T', 'R', 0x2315},
- {'I', 'u', 0x2320},
- {'I', 'l', 0x2321},
- {'<', '/', 0x2329},
- {'/', '>', 0x232a},
- {'V', 's', 0x2423},
- {'1', 'h', 0x2440},
- {'3', 'h', 0x2441},
- {'2', 'h', 0x2442},
- {'4', 'h', 0x2443},
- {'1', 'j', 0x2446},
- {'2', 'j', 0x2447},
- {'3', 'j', 0x2448},
- {'4', 'j', 0x2449},
- {'1', '.', 0x2488},
- {'2', '.', 0x2489},
- {'3', '.', 0x248a},
- {'4', '.', 0x248b},
- {'5', '.', 0x248c},
- {'6', '.', 0x248d},
- {'7', '.', 0x248e},
- {'8', '.', 0x248f},
- {'9', '.', 0x2490},
- {'h', 'h', 0x2500},
- {'H', 'H', 0x2501},
- {'v', 'v', 0x2502},
- {'V', 'V', 0x2503},
- {'3', '-', 0x2504},
- {'3', '_', 0x2505},
- {'3', '!', 0x2506},
- {'3', '/', 0x2507},
- {'4', '-', 0x2508},
- {'4', '_', 0x2509},
- {'4', '!', 0x250a},
- {'4', '/', 0x250b},
- {'d', 'r', 0x250c},
- {'d', 'R', 0x250d},
- {'D', 'r', 0x250e},
- {'D', 'R', 0x250f},
- {'d', 'l', 0x2510},
- {'d', 'L', 0x2511},
- {'D', 'l', 0x2512},
- {'L', 'D', 0x2513},
- {'u', 'r', 0x2514},
- {'u', 'R', 0x2515},
- {'U', 'r', 0x2516},
- {'U', 'R', 0x2517},
- {'u', 'l', 0x2518},
- {'u', 'L', 0x2519},
- {'U', 'l', 0x251a},
- {'U', 'L', 0x251b},
- {'v', 'r', 0x251c},
- {'v', 'R', 0x251d},
- {'V', 'r', 0x2520},
- {'V', 'R', 0x2523},
- {'v', 'l', 0x2524},
- {'v', 'L', 0x2525},
- {'V', 'l', 0x2528},
- {'V', 'L', 0x252b},
- {'d', 'h', 0x252c},
- {'d', 'H', 0x252f},
- {'D', 'h', 0x2530},
- {'D', 'H', 0x2533},
- {'u', 'h', 0x2534},
- {'u', 'H', 0x2537},
- {'U', 'h', 0x2538},
- {'U', 'H', 0x253b},
- {'v', 'h', 0x253c},
- {'v', 'H', 0x253f},
- {'V', 'h', 0x2542},
- {'V', 'H', 0x254b},
- {'F', 'D', 0x2571},
- {'B', 'D', 0x2572},
- {'T', 'B', 0x2580},
- {'L', 'B', 0x2584},
- {'F', 'B', 0x2588},
- {'l', 'B', 0x258c},
- {'R', 'B', 0x2590},
- {'.', 'S', 0x2591},
- {':', 'S', 0x2592},
- {'?', 'S', 0x2593},
- {'f', 'S', 0x25a0},
- {'O', 'S', 0x25a1},
- {'R', 'O', 0x25a2},
- {'R', 'r', 0x25a3},
- {'R', 'F', 0x25a4},
- {'R', 'Y', 0x25a5},
- {'R', 'H', 0x25a6},
- {'R', 'Z', 0x25a7},
- {'R', 'K', 0x25a8},
- {'R', 'X', 0x25a9},
- {'s', 'B', 0x25aa},
- {'S', 'R', 0x25ac},
- {'O', 'r', 0x25ad},
- {'U', 'T', 0x25b2},
- {'u', 'T', 0x25b3},
- {'P', 'R', 0x25b6},
- {'T', 'r', 0x25b7},
- {'D', 't', 0x25bc},
- {'d', 'T', 0x25bd},
- {'P', 'L', 0x25c0},
- {'T', 'l', 0x25c1},
- {'D', 'b', 0x25c6},
- {'D', 'w', 0x25c7},
- {'L', 'Z', 0x25ca},
- {'0', 'm', 0x25cb},
- {'0', 'o', 0x25ce},
- {'0', 'M', 0x25cf},
- {'0', 'L', 0x25d0},
- {'0', 'R', 0x25d1},
- {'S', 'n', 0x25d8},
- {'I', 'c', 0x25d9},
- {'F', 'd', 0x25e2},
- {'B', 'd', 0x25e3},
- {'*', '2', 0x2605},
- {'*', '1', 0x2606},
- {'<', 'H', 0x261c},
- {'>', 'H', 0x261e},
- {'0', 'u', 0x263a},
- {'0', 'U', 0x263b},
- {'S', 'U', 0x263c},
- {'F', 'm', 0x2640},
- {'M', 'l', 0x2642},
- {'c', 'S', 0x2660},
- {'c', 'H', 0x2661},
- {'c', 'D', 0x2662},
- {'c', 'C', 0x2663},
- {'M', 'd', 0x2669},
- {'M', '8', 0x266a},
- {'M', '2', 0x266b},
- {'M', 'b', 0x266d},
- {'M', 'x', 0x266e},
- {'M', 'X', 0x266f},
- {'O', 'K', 0x2713},
- {'X', 'X', 0x2717},
- {'-', 'X', 0x2720},
- {'I', 'S', 0x3000},
- {',', '_', 0x3001},
- {'.', '_', 0x3002},
- {'+', '"', 0x3003},
- {'+', '_', 0x3004},
- {'*', '_', 0x3005},
- {';', '_', 0x3006},
- {'0', '_', 0x3007},
- {'<', '+', 0x300a},
- {'>', '+', 0x300b},
- {'<', '\'', 0x300c},
- {'>', '\'', 0x300d},
- {'<', '"', 0x300e},
- {'>', '"', 0x300f},
- {'(', '"', 0x3010},
- {')', '"', 0x3011},
- {'=', 'T', 0x3012},
- {'=', '_', 0x3013},
- {'(', '\'', 0x3014},
- {')', '\'', 0x3015},
- {'(', 'I', 0x3016},
- {')', 'I', 0x3017},
- {'-', '?', 0x301c},
- {'A', '5', 0x3041},
- {'a', '5', 0x3042},
- {'I', '5', 0x3043},
- {'i', '5', 0x3044},
- {'U', '5', 0x3045},
- {'u', '5', 0x3046},
- {'E', '5', 0x3047},
- {'e', '5', 0x3048},
- {'O', '5', 0x3049},
- {'o', '5', 0x304a},
- {'k', 'a', 0x304b},
- {'g', 'a', 0x304c},
- {'k', 'i', 0x304d},
- {'g', 'i', 0x304e},
- {'k', 'u', 0x304f},
- {'g', 'u', 0x3050},
- {'k', 'e', 0x3051},
- {'g', 'e', 0x3052},
- {'k', 'o', 0x3053},
- {'g', 'o', 0x3054},
- {'s', 'a', 0x3055},
- {'z', 'a', 0x3056},
- {'s', 'i', 0x3057},
- {'z', 'i', 0x3058},
- {'s', 'u', 0x3059},
- {'z', 'u', 0x305a},
- {'s', 'e', 0x305b},
- {'z', 'e', 0x305c},
- {'s', 'o', 0x305d},
- {'z', 'o', 0x305e},
- {'t', 'a', 0x305f},
- {'d', 'a', 0x3060},
- {'t', 'i', 0x3061},
- {'d', 'i', 0x3062},
- {'t', 'U', 0x3063},
- {'t', 'u', 0x3064},
- {'d', 'u', 0x3065},
- {'t', 'e', 0x3066},
- {'d', 'e', 0x3067},
- {'t', 'o', 0x3068},
- {'d', 'o', 0x3069},
- {'n', 'a', 0x306a},
- {'n', 'i', 0x306b},
- {'n', 'u', 0x306c},
- {'n', 'e', 0x306d},
- {'n', 'o', 0x306e},
- {'h', 'a', 0x306f},
- {'b', 'a', 0x3070},
- {'p', 'a', 0x3071},
- {'h', 'i', 0x3072},
- {'b', 'i', 0x3073},
- {'p', 'i', 0x3074},
- {'h', 'u', 0x3075},
- {'b', 'u', 0x3076},
- {'p', 'u', 0x3077},
- {'h', 'e', 0x3078},
- {'b', 'e', 0x3079},
- {'p', 'e', 0x307a},
- {'h', 'o', 0x307b},
- {'b', 'o', 0x307c},
- {'p', 'o', 0x307d},
- {'m', 'a', 0x307e},
- {'m', 'i', 0x307f},
- {'m', 'u', 0x3080},
- {'m', 'e', 0x3081},
- {'m', 'o', 0x3082},
- {'y', 'A', 0x3083},
- {'y', 'a', 0x3084},
- {'y', 'U', 0x3085},
- {'y', 'u', 0x3086},
- {'y', 'O', 0x3087},
- {'y', 'o', 0x3088},
- {'r', 'a', 0x3089},
- {'r', 'i', 0x308a},
- {'r', 'u', 0x308b},
- {'r', 'e', 0x308c},
- {'r', 'o', 0x308d},
- {'w', 'A', 0x308e},
- {'w', 'a', 0x308f},
- {'w', 'i', 0x3090},
- {'w', 'e', 0x3091},
- {'w', 'o', 0x3092},
- {'n', '5', 0x3093},
- {'v', 'u', 0x3094},
- {'"', '5', 0x309b},
- {'0', '5', 0x309c},
- {'*', '5', 0x309d},
- {'+', '5', 0x309e},
- {'a', '6', 0x30a1},
- {'A', '6', 0x30a2},
- {'i', '6', 0x30a3},
- {'I', '6', 0x30a4},
- {'u', '6', 0x30a5},
- {'U', '6', 0x30a6},
- {'e', '6', 0x30a7},
- {'E', '6', 0x30a8},
- {'o', '6', 0x30a9},
- {'O', '6', 0x30aa},
- {'K', 'a', 0x30ab},
- {'G', 'a', 0x30ac},
- {'K', 'i', 0x30ad},
- {'G', 'i', 0x30ae},
- {'K', 'u', 0x30af},
- {'G', 'u', 0x30b0},
- {'K', 'e', 0x30b1},
- {'G', 'e', 0x30b2},
- {'K', 'o', 0x30b3},
- {'G', 'o', 0x30b4},
- {'S', 'a', 0x30b5},
- {'Z', 'a', 0x30b6},
- {'S', 'i', 0x30b7},
- {'Z', 'i', 0x30b8},
- {'S', 'u', 0x30b9},
- {'Z', 'u', 0x30ba},
- {'S', 'e', 0x30bb},
- {'Z', 'e', 0x30bc},
- {'S', 'o', 0x30bd},
- {'Z', 'o', 0x30be},
- {'T', 'a', 0x30bf},
- {'D', 'a', 0x30c0},
- {'T', 'i', 0x30c1},
- {'D', 'i', 0x30c2},
- {'T', 'U', 0x30c3},
- {'T', 'u', 0x30c4},
- {'D', 'u', 0x30c5},
- {'T', 'e', 0x30c6},
- {'D', 'e', 0x30c7},
- {'T', 'o', 0x30c8},
- {'D', 'o', 0x30c9},
- {'N', 'a', 0x30ca},
- {'N', 'i', 0x30cb},
- {'N', 'u', 0x30cc},
- {'N', 'e', 0x30cd},
- {'N', 'o', 0x30ce},
- {'H', 'a', 0x30cf},
- {'B', 'a', 0x30d0},
- {'P', 'a', 0x30d1},
- {'H', 'i', 0x30d2},
- {'B', 'i', 0x30d3},
- {'P', 'i', 0x30d4},
- {'H', 'u', 0x30d5},
- {'B', 'u', 0x30d6},
- {'P', 'u', 0x30d7},
- {'H', 'e', 0x30d8},
- {'B', 'e', 0x30d9},
- {'P', 'e', 0x30da},
- {'H', 'o', 0x30db},
- {'B', 'o', 0x30dc},
- {'P', 'o', 0x30dd},
- {'M', 'a', 0x30de},
- {'M', 'i', 0x30df},
- {'M', 'u', 0x30e0},
- {'M', 'e', 0x30e1},
- {'M', 'o', 0x30e2},
- {'Y', 'A', 0x30e3},
- {'Y', 'a', 0x30e4},
- {'Y', 'U', 0x30e5},
- {'Y', 'u', 0x30e6},
- {'Y', 'O', 0x30e7},
- {'Y', 'o', 0x30e8},
- {'R', 'a', 0x30e9},
- {'R', 'i', 0x30ea},
- {'R', 'u', 0x30eb},
- {'R', 'e', 0x30ec},
- {'R', 'o', 0x30ed},
- {'W', 'A', 0x30ee},
- {'W', 'a', 0x30ef},
- {'W', 'i', 0x30f0},
- {'W', 'e', 0x30f1},
- {'W', 'o', 0x30f2},
- {'N', '6', 0x30f3},
- {'V', 'u', 0x30f4},
- {'K', 'A', 0x30f5},
- {'K', 'E', 0x30f6},
- {'V', 'a', 0x30f7},
- {'V', 'i', 0x30f8},
- {'V', 'e', 0x30f9},
- {'V', 'o', 0x30fa},
- {'.', '6', 0x30fb},
- {'-', '6', 0x30fc},
- {'*', '6', 0x30fd},
- {'+', '6', 0x30fe},
- {'b', '4', 0x3105},
- {'p', '4', 0x3106},
- {'m', '4', 0x3107},
- {'f', '4', 0x3108},
- {'d', '4', 0x3109},
- {'t', '4', 0x310a},
- {'n', '4', 0x310b},
- {'l', '4', 0x310c},
- {'g', '4', 0x310d},
- {'k', '4', 0x310e},
- {'h', '4', 0x310f},
- {'j', '4', 0x3110},
- {'q', '4', 0x3111},
- {'x', '4', 0x3112},
- {'z', 'h', 0x3113},
- {'c', 'h', 0x3114},
- {'s', 'h', 0x3115},
- {'r', '4', 0x3116},
- {'z', '4', 0x3117},
- {'c', '4', 0x3118},
- {'s', '4', 0x3119},
- {'a', '4', 0x311a},
- {'o', '4', 0x311b},
- {'e', '4', 0x311c},
- {'a', 'i', 0x311e},
- {'e', 'i', 0x311f},
- {'a', 'u', 0x3120},
- {'o', 'u', 0x3121},
- {'a', 'n', 0x3122},
- {'e', 'n', 0x3123},
- {'a', 'N', 0x3124},
- {'e', 'N', 0x3125},
- {'e', 'r', 0x3126},
- {'i', '4', 0x3127},
- {'u', '4', 0x3128},
- {'i', 'u', 0x3129},
- {'v', '4', 0x312a},
- {'n', 'G', 0x312b},
- {'g', 'n', 0x312c},
- {'1', 'c', 0x3220},
- {'2', 'c', 0x3221},
- {'3', 'c', 0x3222},
- {'4', 'c', 0x3223},
- {'5', 'c', 0x3224},
- {'6', 'c', 0x3225},
- {'7', 'c', 0x3226},
- {'8', 'c', 0x3227},
- {'9', 'c', 0x3228},
- {' ', ' ', 0xe000},
- {'/', 'c', 0xe001},
- {'U', 'A', 0xe002},
- {'U', 'B', 0xe003},
- {'"', '3', 0xe004},
- {'"', '1', 0xe005},
- {'"', '!', 0xe006},
- {'"', '\'', 0xe007},
- {'"', '>', 0xe008},
- {'"', '?', 0xe009},
- {'"', '-', 0xe00a},
- {'"', '(', 0xe00b},
- {'"', '.', 0xe00c},
- {'"', ':', 0xe00d},
- {'"', '0', 0xe00e},
- {'"', '"', 0xe00f},
- {'"', '<', 0xe010},
- {'"', ',', 0xe011},
- {'"', ';', 0xe012},
- {'"', '_', 0xe013},
- {'"', '=', 0xe014},
- {'"', '/', 0xe015},
- {'"', 'i', 0xe016},
- {'"', 'd', 0xe017},
- {'"', 'p', 0xe018},
- {';', ';', 0xe019},
- {',', ',', 0xe01a},
- {'b', '3', 0xe01b},
- {'C', 'i', 0xe01c},
- {'f', '(', 0xe01d},
- {'e', 'd', 0xe01e},
- {'a', 'm', 0xe01f},
- {'p', 'm', 0xe020},
- {'F', 'l', 0xe023},
- {'G', 'F', 0xe024},
- {'>', 'V', 0xe025},
- {'!', '*', 0xe026},
- {'?', '*', 0xe027},
- {'J', '<', 0xe028},
- {'f', 'f', 0xfb00},
- {'f', 'i', 0xfb01},
- {'f', 'l', 0xfb02},
- {'f', 't', 0xfb05},
- {'s', 't', 0xfb06},
- # endif /* FEAT_MBYTE */
- {NUL, NUL, NUL}
- };
-
- # endif /* OLD_DIGRAPHS */
-
- # endif /* Macintosh */
- # endif /* EBCDIC */
- # endif /* !HPUX_DIGRAPHS */
- # endif /* !__MINT__ */
- #endif /* !MSDOS && !OS2 */
-
- /*
- * handle digraphs after typing a character
- */
- int
- do_digraph(c)
- int c;
- {
- static int backspaced; /* character before K_BS */
- static int lastchar; /* last typed character */
-
- if (c == -1) /* init values */
- {
- backspaced = -1;
- }
- else if (p_dg)
- {
- if (backspaced >= 0)
- c = getdigraph(backspaced, c, FALSE);
- backspaced = -1;
- if ((c == K_BS || c == Ctrl_H) && lastchar >= 0)
- backspaced = lastchar;
- }
- lastchar = c;
- return c;
- }
-
- /*
- * Get a digraph. Used after typing CTRL-K on the command line or in normal
- * mode.
- * Returns composed character, or NUL when ESC was used.
- */
- int
- get_digraph(cmdline)
- int cmdline; /* TRUE when called from the cmdline */
- {
- int c, cc;
-
- ++no_mapping;
- ++allow_keys;
- c = safe_vgetc();
- --no_mapping;
- --allow_keys;
- if (c != ESC) /* ESC cancels CTRL-K */
- {
- if (IS_SPECIAL(c)) /* insert special key code */
- return c;
- if (cmdline)
- {
- if (char2cells(c) == 1)
- putcmdline(c, TRUE);
- }
- #ifdef FEAT_CMDL_INFO
- else
- add_to_showcmd(c);
- #endif
- ++no_mapping;
- ++allow_keys;
- cc = safe_vgetc();
- --no_mapping;
- --allow_keys;
- if (cc != ESC) /* ESC cancels CTRL-K */
- return getdigraph(c, cc, TRUE);
- }
- return NUL;
- }
-
- /*
- * Lookup the pair "char1", "char2" in the digraph tables.
- * If no match, return "char2".
- * If "meta" is TRUE and "char1" is a space, return "char2" | 0x80.
- */
- static int
- getexactdigraph(char1, char2, meta)
- int char1;
- int char2;
- int meta;
- {
- int i;
- int retval = 0;
- digr_T *dp;
-
- if (IS_SPECIAL(char1) || IS_SPECIAL(char2))
- return char2;
-
- /*
- * Search user digraphs first.
- */
- dp = (digr_T *)user_digraphs.ga_data;
- for (i = 0; i < user_digraphs.ga_len; ++i)
- {
- if (dp->char1 == (unsigned)char1 && dp->char2 == (unsigned)char2)
- {
- retval = dp->result;
- break;
- }
- ++dp;
- }
-
- /*
- * Search default digraphs.
- */
- if (retval == 0)
- {
- dp = digraphdefault;
- for (i = 0; dp->char1 != 0; ++i)
- {
- if (dp->char1 == (unsigned)char1 && dp->char2 == (unsigned)char2)
- {
- retval = dp->result;
- break;
- }
- ++dp;
- }
- }
- #ifdef FEAT_MBYTE
- /* Ignore multi-byte characters when not in multi-byte mode. */
- if (!has_mbyte && retval > 0xff)
- retval = 0;
- #endif
-
- if (retval == 0) /* digraph deleted or not found */
- {
- if (char1 == ' ' && meta) /* <space> <char> --> meta-char */
- return (char2 | 0x80);
- return char2;
- }
- return retval;
- }
-
- /*
- * Get digraph.
- * Allow for both char1-char2 and char2-char1
- */
- int
- getdigraph(char1, char2, meta)
- int char1;
- int char2;
- int meta;
- {
- int retval;
-
- if (((retval = getexactdigraph(char1, char2, meta)) == char2)
- && (char1 != char2)
- && ((retval = getexactdigraph(char2, char1, meta)) == char1))
- return char2;
- return retval;
- }
-
- /*
- * Add the digraphs in the argument to the digraph table.
- * format: {c1}{c2} char {c1}{c2} char ...
- */
- void
- putdigraph(str)
- char_u *str;
- {
- int char1, char2, n;
- int i;
- digr_T *dp;
-
- while (*str != NUL)
- {
- str = skipwhite(str);
- if (*str == NUL)
- return;
- char1 = *str++;
- char2 = *str++;
- if (char2 == 0)
- {
- EMSG(_(e_invarg));
- return;
- }
- if (char1 == ESC || char2 == ESC)
- {
- EMSG(_("E104: Escape not allowed in digraph"));
- return;
- }
- str = skipwhite(str);
- if (!isdigit(*str))
- {
- EMSG(_(e_number));
- return;
- }
- n = getdigits(&str);
-
- /* If the digraph already exists, replace the result. */
- dp = (digr_T *)user_digraphs.ga_data;
- for (i = 0; i < user_digraphs.ga_len; ++i)
- {
- if (dp->char1 == (unsigned)char1 && dp->char2 == (unsigned)char2)
- {
- dp->result = n;
- break;
- }
- ++dp;
- }
-
- /* Add a new digraph to the table. */
- if (i == user_digraphs.ga_len)
- {
- if (ga_grow(&user_digraphs, 1) == OK)
- {
- dp = (digr_T *)user_digraphs.ga_data + user_digraphs.ga_len;
- dp->char1 = char1;
- dp->char2 = char2;
- dp->result = n;
- ++user_digraphs.ga_len;
- --user_digraphs.ga_room;
- }
- }
- }
- }
-
- void
- listdigraphs()
- {
- int i;
- digr_T *dp;
-
- msg_putchar('\n');
-
- dp = digraphdefault;
- for (i = 0; dp->char1 != NUL && !got_int; ++i)
- {
- if (getexactdigraph(dp->char1, dp->char2, FALSE) == dp->result
- #ifdef FEAT_MBYTE
- && (has_mbyte || dp->result <= 255)
- #endif
- )
- printdigraph(dp);
- ++dp;
- ui_breakcheck();
- }
-
- dp = (digr_T *)user_digraphs.ga_data;
- for (i = 0; i < user_digraphs.ga_len && !got_int; ++i)
- {
- printdigraph(dp);
- ui_breakcheck();
- ++dp;
- }
- must_redraw = CLEAR; /* clear screen, because some digraphs may be
- wrong, in which case we messed up ScreenLines */
- }
-
- static void
- printdigraph(dp)
- digr_T *dp;
- {
- char_u buf[30];
- char_u *p;
-
- int list_width;
-
- if ((dy_flags & DY_UHEX)
- #ifdef FEAT_MBYTE
- || has_mbyte
- #endif
- )
- list_width = 13;
- else
- list_width = 11;
-
- if (dp->result != 0)
- {
- if (msg_col > Columns - list_width)
- msg_putchar('\n');
- if (msg_col)
- while (msg_col % list_width != 0)
- msg_putchar(' ');
-
- p = buf;
- *p++ = dp->char1;
- *p++ = dp->char2;
- *p++ = ' ';
- #ifdef FEAT_MBYTE
- if (has_mbyte)
- {
- /* add a space to draw a composing char on */
- if (enc_utf8 && utf_iscomposing(dp->result))
- *p++ = ' ';
- p += (*mb_char2bytes)(dp->result, p);
- }
- else
- #endif
- *p++ = dp->result;
- if (char2cells(dp->result) == 1)
- *p++ = ' ';
- sprintf((char *)p, " %3d", dp->result);
- msg_outtrans(buf);
- }
- }
-
- #endif /* FEAT_DIGRAPHS */
-
- #if defined(FEAT_KEYMAP) || defined(PROTO)
-
- /* structure used for b_kmap_ga.ga_data */
- typedef struct
- {
- char_u *from;
- char_u *to;
- } kmap_T;
-
- #define KMAP_MAXLEN 20 /* maximum length of "from" or "to" */
-
- static void keymap_unload __ARGS((void));
-
- /*
- * Set up key mapping tables for the 'keymap' option
- */
- char_u *
- keymap_init()
- {
- curbuf->b_kmap_state &= ~KEYMAP_INIT;
-
- if (*curbuf->b_p_keymap == NUL)
- {
- /* Stop any active keymap and clear the table. */
- keymap_unload();
- }
- else
- {
- char_u *buf;
-
- /* Source the keymap file. It will contain a ":loadkeymap" command
- * which will call ex_loadkeymap() below. */
- buf = alloc((unsigned)(STRLEN(curbuf->b_p_keymap)
- # ifdef FEAT_MBYTE
- + STRLEN(p_enc)
- # endif
- + 14));
- if (buf == NULL)
- return e_outofmem;
-
- # ifdef FEAT_MBYTE
- /* try finding "keymap/'keymap'_'encoding'.vim" in 'runtimepath' */
- sprintf((char *)buf, "keymap/%s_%s.vim", curbuf->b_p_keymap, p_enc);
- if (cmd_runtime(buf, FALSE) == FAIL)
- # endif
- {
- /* try finding "keymap/'keymap'.vim" in 'runtimepath' */
- sprintf((char *)buf, "keymap/%s.vim", curbuf->b_p_keymap);
- if (cmd_runtime(buf, FALSE) == FAIL)
- {
- vim_free(buf);
- return (char_u *)N_("Keymap file not found");
- }
- }
- vim_free(buf);
- }
-
- return NULL;
- }
-
- /*
- * ":loadkeymap" command: load the following lines as the keymap.
- */
- void
- ex_loadkeymap(eap)
- exarg_T *eap;
- {
- char_u *line;
- char_u *p;
- char_u *s;
- kmap_T *kp;
- #define KMAP_LLEN 200 /* max length of "to" and "from" together */
- char_u buf[KMAP_LLEN + 11];
- int i;
- char_u *save_cpo = p_cpo;
-
- if (eap->getline != getsourceline)
- {
- EMSG(_("E105: Using :loadkeymap not in a sourced file"));
- return;
- }
-
- /*
- * Stop any active keymap and clear the table.
- */
- keymap_unload();
-
- curbuf->b_kmap_state = 0;
- ga_init2(&curbuf->b_kmap_ga, (int)sizeof(kmap_T), 20);
-
- /* Set 'cpoptions' to "C" to avoid line continuation. */
- p_cpo = (char_u *)"C";
-
- /*
- * Get each line of the sourced file, break at the end.
- */
- for (;;)
- {
- line = getsourceline(0, eap->cookie, 0);
- if (line == NULL)
- break;
-
- p = skipwhite(line);
- if (*p != '"' && *p != NUL && ga_grow(&curbuf->b_kmap_ga, 1) == OK)
- {
- kp = (kmap_T *)curbuf->b_kmap_ga.ga_data + curbuf->b_kmap_ga.ga_len;
- s = skiptowhite(p);
- kp->from = vim_strnsave(p, (int)(s - p));
- p = skipwhite(s);
- s = skiptowhite(p);
- kp->to = vim_strnsave(p, (int)(s - p));
-
- if (kp->from == NULL || kp->to == NULL
- || STRLEN(kp->from) + STRLEN(kp->to) >= KMAP_LLEN)
- {
- vim_free(kp->from);
- vim_free(kp->to);
- }
- else
- {
- ++curbuf->b_kmap_ga.ga_len;
- --curbuf->b_kmap_ga.ga_room;
- }
- }
- vim_free(line);
- }
-
- /*
- * setup ":lnoremap" to map the keys
- */
- for (i = 0; i < curbuf->b_kmap_ga.ga_len; ++i)
- {
- sprintf((char *)buf, "<buffer> %s %s",
- ((kmap_T *)curbuf->b_kmap_ga.ga_data)[i].from,
- ((kmap_T *)curbuf->b_kmap_ga.ga_data)[i].to);
- (void)do_map(2, buf, LANGMAP, FALSE);
- }
-
- p_cpo = save_cpo;
-
- curbuf->b_kmap_state |= KEYMAP_LOADED;
- #ifdef FEAT_WINDOWS
- status_redraw_curbuf();
- #endif
- }
-
- /*
- * Stop using 'keymap'.
- */
- static void
- keymap_unload()
- {
- char_u buf[KMAP_MAXLEN + 10];
- int i;
- char_u *save_cpo = p_cpo;
-
- if (!(curbuf->b_kmap_state & KEYMAP_LOADED))
- return;
-
- /* Set 'cpoptions' to "C" to avoid line continuation. */
- p_cpo = (char_u *)"C";
-
- /* clear the ":lmap"s */
- for (i = 0; i < curbuf->b_kmap_ga.ga_len; ++i)
- {
- sprintf((char *)buf, "<buffer> %s",
- ((kmap_T *)curbuf->b_kmap_ga.ga_data)[i].from);
- (void)do_map(1, buf, LANGMAP, FALSE);
- }
-
- p_cpo = save_cpo;
-
- ga_clear(&curbuf->b_kmap_ga);
- curbuf->b_kmap_state &= ~KEYMAP_LOADED;
- #ifdef FEAT_WINDOWS
- status_redraw_curbuf();
- #endif
- }
-
- #endif /* FEAT_KEYMAP */
-
-